﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.Interfejsi;
using sistem;
using MySql.Data.MySqlClient;

namespace DAL
{
    partial class DAL
    {
        public class SkolskaGodinaDAO : IDaoCrud<SkolskaGodina>
        {
            #region IDaoCrud<SkolskaGodina> Members
            protected MySqlCommand c;
            public long create(SkolskaGodina entity)
            {
                try
                {
                    c = new MySqlCommand("insert into skolska_godina (naziv, pocetak, kraj, dodatne_napomene) values (@Naziv, @Pocetak, @Kraj, @DodatneNapomene);", con);
                    c.Parameters.AddWithValue("@Naziv", entity.Naziv);
                    c.Parameters.AddWithValue("@Pocetak", entity.Pocetak);
                    c.Parameters.AddWithValue("@Kraj", entity.Kraj);
                    //c.Parameters.AddWithValue("@DodatneNapomene", entity.DodatneNapomene);
                    c.ExecuteNonQuery();
                    return c.LastInsertedId;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public List<SkolskaGodina> getAll()
            {
                try
                {
                    c = new MySqlCommand("select * from skolska_godina;", con);
                    MySqlDataReader r = c.ExecuteReader();
                    List<SkolskaGodina> skolskeGodine = new List<SkolskaGodina>();
                    while (r.Read())
                    {
                        SkolskaGodina skolskaGodina = new SkolskaGodina();
                        skolskaGodina.ID = r.GetInt32("id");
                        skolskaGodina.Naziv = r.GetString("naziv");
                        skolskaGodina.Pocetak = r.GetDateTime("pocetak");
                        skolskaGodina.Kraj = r.GetDateTime("kraj");
                       // skolskaGodina.DodatneNapomene = r.GetString("dodatne_napomene");
                        skolskeGodine.Add(skolskaGodina);
                    }
                    return skolskeGodine;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public SkolskaGodina read(SkolskaGodina entity)
            {
                try
                {
                    c = new MySqlCommand("select * from skolska_godina where id = @ID;", con);
                    c.Parameters.AddWithValue("@ID", entity.ID);
                    MySqlDataReader r = c.ExecuteReader();
                    SkolskaGodina skolskaGodina = new SkolskaGodina();
                    if (r.Read())
                    {
                        skolskaGodina.ID = r.GetInt32("id");
                        skolskaGodina.Naziv = r.GetString("naziv");
                        skolskaGodina.Pocetak = r.GetDateTime("pocetak");
                        skolskaGodina.Kraj = r.GetDateTime("kraj");
                        skolskaGodina.Opis = r.GetString("opis");
                    }
                    return skolskaGodina;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public SkolskaGodina update(SkolskaGodina entity)
            {
                try
                {
                    c = new MySqlCommand("UPDATE skolska_godina SET naziv = @Naziv, pocetak = @Pocetak, kraj = @Kraj, dodatne_napomene = @DodatneNapomene where id = @ID;", con);
                    c.Parameters.AddWithValue("@Naziv", entity.Naziv);
                    c.Parameters.AddWithValue("@Pocetak", entity.Pocetak);
                    c.Parameters.AddWithValue("@Kraj", entity.Kraj);
                    c.Parameters.AddWithValue("@Opis", entity.Opis);
                    c.Parameters.AddWithValue("@ID", entity.ID);
                    c.ExecuteNonQuery();
                    return entity;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public void delete(SkolskaGodina entity)
            {
                try
                {
                    c = new MySqlCommand("delete from skolska_godina where id = @ID;", con);
                    c.Parameters.AddWithValue("@ID", entity.ID);
                    c.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public SkolskaGodina getById(int id)
            {
                try
                {
                    c = new MySqlCommand("select * from skolska_godina where id = @ID;", con);
                    c.Parameters.AddWithValue("@ID", id);
                    MySqlDataReader r = c.ExecuteReader();
                    SkolskaGodina skolskaGodina = new SkolskaGodina();
                    if (r.Read())
                    {
                        skolskaGodina.ID = r.GetInt32("id");
                        skolskaGodina.Naziv = r.GetString("naziv");
                        skolskaGodina.Pocetak = r.GetDateTime("pocetak");
                        skolskaGodina.Kraj = r.GetDateTime("kraj");
                        skolskaGodina.Opis = r.GetString("opis");
                    }
                    return skolskaGodina;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public List<SkolskaGodina> getByExample(string name, string value)
            {
                try
                {
                    c = new MySqlCommand("select * from skolska_godina where @Kolona = @Vrijednost;", con);
                    c.Parameters.AddWithValue("@Kolona", name);
                    c.Parameters.AddWithValue("@Vrijednost", value);
                    MySqlDataReader r = c.ExecuteReader();
                    List<SkolskaGodina> skolskeGodine = new List<SkolskaGodina>();
                    while (r.Read())
                    {
                        SkolskaGodina skolskaGodina = new SkolskaGodina();
                        skolskaGodina.ID = r.GetInt32("id");
                        skolskaGodina.Naziv = r.GetString("naziv");
                        skolskaGodina.Pocetak = r.GetDateTime("pocetak");
                        skolskaGodina.Kraj = r.GetDateTime("kraj");
                        skolskaGodina.Opis = r.GetString("opis");
                        skolskeGodine.Add(skolskaGodina);
                    }
                    return skolskeGodine;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            #endregion
        }
    }
}
